package com.ydd.service.impl;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.ydd.dto.TagDTO;
import com.ydd.dto.TagPageQueryDto;
import com.ydd.entity.Tag;
import com.ydd.mapper.TagMapper;
import com.ydd.result.PageResult;
import com.ydd.service.ITagService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author hgz
 * @since 2023-05-30
 */
@Service
public class TagServiceImpl extends ServiceImpl<TagMapper, Tag> implements ITagService {


    @Autowired
    private TagMapper tagMapper;

    @Override
    public void updateTag(TagDTO tagDTO) {
        Tag tag = new Tag();
        BeanUtils.copyProperties(tagDTO, tag);
        tag.setId(Integer.valueOf(tagDTO.getId()));
        tagMapper.updateTag(tag);
    }

    @Override
    public void add(TagDTO tagDTO) {
        Tag tag = new Tag();
        BeanUtils.copyProperties(tagDTO,tag);
        tagMapper.add(tag);
    }

    @Override
    public PageResult pagelist(TagPageQueryDto tagPageQueryDto) {
        //设置分页参数
        PageHelper.startPage(tagPageQueryDto.getPage(), tagPageQueryDto.getLimit());
        //执行查询
        List<Tag> tagList = tagMapper.pagelist(tagPageQueryDto.getTagname());
        //转换为page对象
        Page<Tag> page = (Page<Tag>) tagList;
        //封装为PageResult返回
        return new PageResult((int)page.getTotal(),page.getPages(),page.getPageSize(),page.getPageNum(),page.getResult());
    }

    @Override
    public List<Tag> all() {
        List<Tag> list=  tagMapper.all();
        return list;
    }

    @Override
    public Tag rowlnfo(Integer id) {
        Tag tag= tagMapper.rowlnfo(id);
        return tag;
    }

    @Override
    public void del(Integer id) {
        tagMapper.del(id);
    }
}
